﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.MarketingCoupon.MarketingCouponStatistics;
using System;
using System.Collections.Generic;

namespace BCService.TMS.MarketingCoupon.MarketingCouponStatistics
{
    public interface IMarketingCouponStatisticsService
    {
        /// <summary>
        /// 获取详情统计
        /// </summary>
        /// <param name="admin">管理员信息</param>
        /// <param name="isCommonBusiness">是否通用</param>
        /// <param name="vehicleTransportBusinessConfigId">运输业务id</param>
        /// <param name="isExpired">是否过期</param>
        /// <param name="startDate">开始日期</param>
        /// <param name="endDate">结束日期</param>
        /// <returns></returns>
        IEnumerable<MarketingCouponStatisticsDetailDto> GetDetailList(AdminDto admin, bool isCommonBusiness, long? vehicleTransportBusinessConfigId,
             bool? isExpired, DateTime? startDate, DateTime? endDate);
        /// <summary>
        /// 获取统计
        /// </summary>
        /// <param name="admin">管理员信息</param>
        /// <param name="isCommonBusiness">是否通用</param>
        /// <param name="vehicleTransportBusinessConfigId">运输业务id</param>
        /// <returns></returns>
        MarketingCouponStatisticsDto GetMarketingCouponStatistics(AdminDto admin, bool isCommonBusiness, long? vehicleTransportBusinessConfigId);
        /// <summary>
        /// 获取详情统计(分页)
        /// </summary>
        /// <param name="admin">管理员信息</param>
        /// <param name="isCommonBusiness">是否通用</param>
        /// <param name="vehicleTransportBusinessConfigId">运输业务id</param>
        /// <param name="isExpired">是否过期</param>
        /// <param name="startDate">开始日期</param>
        /// <param name="endDate">结束日期</param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<MarketingCouponStatisticsDetailDto> GetDetailQuery(AdminDto admin, bool isCommonBusiness, long? vehicleTransportBusinessConfigId, bool? isExpired, DateTime? startDate, DateTime? endDate, int pageIndex, int pageSize);
        /// <summary>
        /// 获取优惠券统计(看板)
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="isCommonBusiness"></param>
        /// <param name="vehicleTransportBusinessConfigId"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        MarketingCouponStatisticsDto GetMarketingCouponAgentStatistics(AdminDto admin, bool? isCommonBusiness,
                long? vehicleTransportBusinessConfigId, DateTime? startDate, DateTime? endDate);
    }
}